package IOStream.FileInputStreamDome;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * ClassName:FileInputStream001
 * Package:IOStream.FileInputStreamDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/28-17:45
 * @Version:v1.0
 */
public class FileInputStream001 {
    /**
     * FileInputStream:操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来
     *
     * 书写步骤：
     * 1.创建字节输入流对象
     * 细节：1.如果文件不存在直接报错
     * 2.读取数据
     * 细节：1.一次读一个字节,读取出来的是数据在ASCII上对应的数字
     *      2.读到文件末尾了,read方法返回-1
     * 3.释放资源
     * 细节：每次使用完流必须释放资源
     */

    public static void main(String[] args) throws IOException {
        //创建对象
        FileInputStream fis = new FileInputStream("E:\\aaa\\a.txt");
        //读取数据
        int b1 = fis.read();
        System.out.println((char) b1);
        int b2 = fis.read();
        System.out.println((char) b2);
        int b3 = fis.read();
        System.out.println((char) b3);
        int b4 = fis.read();
        System.out.println(b4);//-1

        //释放资源
        fis.close();

    }
}
/*
*  1：如果文件不存在直接报错,为什么Java会这样设计呢
     (输出流：不存在,创建 --> 把数据写到文件当中)
     (输入流：不存在,报错 --> 数据在文件当中)
     因为创建出来的文件是么有数据的,没有任何意义
     所以Java就没有设计这种无意义的逻辑,文件存在直接报错*/